Điểm mạnh và điểm yếu Thuật_toán_Luhn

Thuật toán Luhn sẽ phát hiện bất kỳ lỗi một chữ số nào, cũng như gần như tất cả các chuyển vị của các chữ số liền kề.Tuy nhiên, nó sẽ không phát hiện chuyển vị của dãy hai chữ số 09 thành 90 (hoặc ngược lại). Nó sẽ phát hiện 7 trong số 10 lỗi số kép có thể xảy ra (nó sẽ không phát hiện ra 22 ↔ 55, 33 ↔ 66 hay 44 ↔ 77).

Các thuật toán kiểm tra số phức tạp khác (giống như thuật toán Verhoeffthuật toán Damm) có thể phát hiện thêm các lỗi sao chép. Thuật toán Luhn mod N là một phần mở rộng hỗ trợ các chuỗi không có số.

Bởi vì thuật toán hoạt động trên các chữ số theo cách từ phải sang trái và các chữ số 0 chỉ ảnh hưởng đến kết quả nếu chúng gây ra dịch chuyển vị trí, việc đệm số 0 bắt đầu một chuỗi số không ảnh hưởng đến phép tính. Do đó, các hệ thống đệm đến một số chữ số cụ thể (ví dụ bằng cách chuyển đổi 1234 thành 0001234) có thể thực hiện xác thực Luhn trước hoặc sau khi đệm và đạt được kết quả tương tự.

Chuẩn bị một số có độ dài từ 0 đến vị trí lẻ khiến nó xử lý số từ trái sang phải thay vì phải sang trái, nhân đôi các chữ số ở vị trí lẻ.Thuật toán xuất hiện trong United States Patent[2] cho một thiết bị cơ khí cầm tay để tính toán checksum. Do đó, nó được yêu cầu khá đơn giản. Thiết bị lấy mod 10 tổng bằng phương tiện cơ học. Các chữ số thay thế, nghĩa là, kết quả của thủ tục nhân đôi và giảm, không được tạo ra một cách cơ học. Thay vào đó, các chữ số được đánh dấu theo thứ tự hoán vị trên thân máy.